import request from '@/util/request';

/**
 * 获取商品列表
 * @param {Object} data - 查询参数
 * @returns {Promise} - API 响应
 */
export function listProducts() {
  return request({
    url: 'product/listProducts',
    method: 'get',
   // 使用 params 发送查询参数
  });
}

/**
 * 新增商品
 * @param {Object} data - 新增的商品数据
 * @returns {Promise} - API 响应
 */
export function addProduct(data) {
  return request({
    url: 'product/addProduct',
    method: 'post',
    data: data, // 使用 data 发送请求体
  });
}

/**
 * 更新商品
 * @param {Object} data - 更新的商品数据
 * @returns {Promise} - API 响应
 */
export function updateProduct(data) {
  return request({
    url: `/updateProduct/${data.id}`, // 假设商品的 ID 在 URL 中
    method: 'put',
    data: data, // 使用 data 发送请求体
  });
}

/**
 * 删除商品
 * @param {number} id - 商品 ID
 * @returns {Promise} - API 响应
 */
export function deleteProduct(id) {
  return request({
    url: `/deleteProduct/${id}`, // 假设商品的 ID 在 URL 中
    method: 'delete',
  });
}

/**
 * 根据商店id获取服务商品列表
 * @param {number} storeId - 商店 ID
 */
export function getGoodsListByStoreId(storeId) {
  return request({
    url: `/product/listServiceProducts/${storeId}`,
    method: 'get',
  });
}

/**
 * 根据token获取商品列表
 * @param {string} token - 用户 token
 */
export function getGoodsListByToken() {
  return request({
    url: '/product/listServiceProductsByToken',
    method: 'get',
  });
}


/**
 * 获取全部商品列表
 */
export function getAllGoodsList() {
  return request({
    url: '/product/listAllProducts',
    method: 'get',
  });
}
/**
 * 获取除自己外的其他用户的商品列表
 */
export function getOtherGoodsList() {
  return request({
    url: '/product/listOtherProducts',
    method: 'get',
  });
}

/**
 * 分页获取商品列表
 */
export function listOtherProductsByPage(data) {
  return request({
    url: '/product/listOtherProductsByPage',
    method: 'post',
    data: data,
  });
}



/**
 * 上下架产品
 * @param {number} productId - 商品 ID
 * @param {number} status - 状态 0 下架 1 上架
 */
export function changeProductStatus(productId) {
  return request({
    url: `/product/changeProductStatus/${productId}`,
    method: 'put',
  });
}